#ifndef RUNTHREAD_H
#define RUNTHREAD_H
#include <QThread>
#include <QMovie>
#include <QLabel>
#include <QDialog>
#include <QPainter>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>


class runThread : public QThread
{
    Q_OBJECT
public:
    runThread(QObject* parent = nullptr);

signals:
    /** 发送搜到的串口列表portList的信号
    *
    *  @param:  portList 搜到的串口列表
    *  @return: void
    *  @note:  发送搜到的串口列表的信号
    *  @see:
    */
    void emitPortList(QStringList portList);

public slots:

    /** runThread的子线程停止 ; public槽函数
    *
    *  @param:  void
    *  @return: void
    *  @note:  runThread的子线程停止
    *  @see:
    */
    void stop();

    /** 搜索设备上的端口 ; public槽函数
    *
    *  @param:  void
    *  @return: void
    *  @note:  搜索设备上的端口
    *  @see:
    */
    void searchPort();                  //搜索设备上的端口
protected:

    /** runThread的子线程开启
    *
    *  @param:  void
    *  @return: void
    *  @note:  runThread的子线程开启
    *  @see:
    */
    void run();



private:


    bool STOPTYPE;


    QSerialPort* serialport;

    /** 删除串口列表*list中重复的串口
    *
    *  @param:  *list 串口列表
    *  @return: void
    *  @note:  删除串口列表*list中重复的串口
    *  @see:
    */
    void removeListSame(QStringList *list);
};

#endif // RUNTHREAD_H
